Skip to content

Add CallLint to the Copilot plugins marketplace - #80

Open
saintl1022 wants to merge 1 commit into
github:mainfrom
saintl1022:add-calllint-plugin
Open

Add CallLint to the Copilot plugins marketplace#80
saintl1022 wants to merge 1 commit into
github:mainfrom
saintl1022:add-calllint-plugin

Conversation

@saintl1022

Copy link
Copy Markdown

What this adds

One entry for CallLint, a preflight risk linter for MCP servers and agent tools.

Before an agent adds or edits a tool config, CallLint scans the blast radius and returns
SAFE / REVIEW / BLOCK / UNKNOWN — with evidence attached to every finding, and a
recorded distinction between what was observed and what was inferred. It is advisory and
non-blocking, and it never executes the server it is judging.

The diff

Append-only, .github/plugin/marketplace.json, 24 lines added / 0 removed, one hunk. No
existing entry is altered, and .claude-plugin/marketplace.json — the symlink added in #24
is deliberately untouched.

The entry mirrors the live workiq entry field for field and in order. Every value is one
already published in plugins/calllint/.claude-plugin/plugin.json; nothing was invented for
this submission.

Verified before opening

  • plugins/calllint/.mcp.json is on calllint/calllint@main — so following this entry
    yields a plugin whose MCP server actually registers. It resolves to
    npx -y calllint-mcp.
  • Installed and exercised on Copilot CLI: the plugin loads and /mcp lists the server as
    connected. An earlier revision shipped only mcp.json (Cursor's filename), which loaded
    the plugin while leaving the MCP server silently absent; .mcp.json was added to fix
    exactly that, and it landed before this PR was opened.
  • Manifest re-parsed after editing: 20 → 21 entries, valid JSON.

Happy to adjust the description, keywords, or field set to match whatever convention you'd
prefer for third-party entries.

CallLint is a preflight risk linter for MCP servers and agent tools. It
reports SAFE / REVIEW / BLOCK / UNKNOWN with evidence for every finding,
and never executes the server it judges.

The entry mirrors the existing `workiq` shape field for field and points
at plugins/calllint in calllint/calllint, which carries the plugin
manifest and .mcp.json. Append-only: one entry, 24 lines, no existing
entry altered and the .claude-plugin/marketplace.json symlink untouched.
saintl1022 added a commit to calllint/calllint that referenced this pull request Aug 27, 2026
Version bump: 1.8.0 -> 1.9.0. Closes a nine-day gap in which 35 commits sat
on `main` while npm still served 1.8.0, so no user had any of them. Most
consequentially, the telemetry delivery path now actually ships, which means
`no telemetry ingested yet` stops being a correct description of the world
and starts being a finding (O-1).

Three fields move together because a gate requires it: apps/cli/package.json,
project-facts.json stableVersion, and CLI_VERSION (derived from stableVersion
in renderPage.ts). The Trust Index bake follows, and re-baking also advanced
99 pages FRESH -> AGING — time-derived and accurate, not caused by the bump.

Distribution:

- copilot-cli/github-copilot-plugin READY_NOT_SUBMITTED -> PENDING_UPSTREAM.
  Opened github/copilot-plugins#80 on the user's behalf: one entry appended to
  `.github/plugin/marketplace.json`, +24/-0. That repo's
  `.claude-plugin/marketplace.json` is a *symlink* to it (mode 120000), which
  the contents API hides by resolving — only the tree mode shows it. §89's
  quota of 3 external submissions is now spent.
- openclaw/openclaw-clawhub: DECIDED, declined. Publishing needs one command
  and no new artifact, but ClawHub releases every skill under MIT-0 against
  this repo's Apache-2.0. The alternative was checked before recording: their
  skill format documents no `license` field and states it "does not support
  per-skill license overrides". Recorded as settled rather than pending.
- Dropped a `READY_NOT_SUBMITTED` non-emptiness assertion added earlier the
  same day. It failed within the hour when the copilot row moved, and it was
  the original mistake wearing the opposite sign: requiring the state to be
  populated is no more a rule than requiring it empty. Arm 4's ability to fail
  rests on three negative fixtures, not on live data.
- CHANGELOG: added the `.mcp.json` and O-2 entries that landed after #343,
  then closed [Unreleased] into [1.9.0]. Removed a stale "see ADR 0008"
  citation for the rename — no ADR 0008 records it in either series.

Verification: pnpm test 4978 passed / 1 skipped (266 files), typecheck clean,
build clean, all 4 distribution/copy gates PASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant